package org.shj.suanfa

/**
 * 输入四个点坐标，判断是否可以组成正方形
 * 
 * 解题思路：
 * 两两组合成6条线段，排序后，前面4条线段长度相等，后面2条线段长度相等并大于前面线段的长度
 */
object ValidSquare {
  def main(args: Array[String]): Unit = {
    val dots = List((0,0), (1,1), (1,0), (0,1))
    
    val lens = for{
      i <- 0 to dots.length - 2
      j <- i+1 to dots.length - 1
    }yield getLength(dots(i), dots(j))
    
    val sort = lens.sortWith(_ < _)
    if (sort(0) == sort(1) && sort(1) == sort(2) && sort(2) == sort(3) 
        && sort(4) == sort(5) && sort(4) > sort(3))
      println("can")
    else
      println("cannot")
  }
  
  def getLength(dot1: (Int, Int), dot2:(Int, Int)) : Int = {
    import scala.math._
    (pow(dot1._1 - dot2._1, 2) + pow(dot1._2 - dot2._2,2)).toInt
  }
}